package es.ucm.fdi.xtremeaudio.modelo.fachada;

import java.io.IOException;

import javax.swing.JFrame;

import es.ucm.fdi.xtremeaudio.modelo.beans.Bean;
import es.ucm.fdi.xtremeaudio.modelo.dao.Dao;
import es.ucm.fdi.xtremeaudio.modelo.excepciones.ExcepcionAbrir;
import es.ucm.fdi.xtremeaudio.modelo.excepciones.ExcepcionReproduccion;
import es.ucm.fdi.xtremeaudio.modelo.beans.Cancion;


public class Fachada {

	private static Dao mp3Dao = new Dao();

	public static Bean cargarBiblioteca() {
		Bean bean = null;
		try {
			bean = mp3Dao.cargarBiblioteca();
		} catch (ExcepcionAbrir e) {
			e.printStackTrace();
		}
		return bean;
	}
	
	public static Bean play(){
		Bean bean = null;
		bean = mp3Dao.play();
		return bean;
	}	

	public static Bean crearLista(JFrame padre) { 
		Bean bean = null;		
		bean = mp3Dao.crearLista(padre);
		return bean;
	}
	
	public static Bean abrirLista(JFrame padre) { 
		Bean bean = null;
		try {
			bean = mp3Dao.abrirLista(padre);			
		} catch (ExcepcionAbrir e) {
			e.printStackTrace();
		}
		return bean;
	}
	
	public static Bean importarCarpeta(JFrame padre) { 
		Bean bean = null;
		try {
			bean = mp3Dao.importarCarpeta(padre);			
		} catch (ExcepcionAbrir e) {
			e.printStackTrace();
		}
		return bean;
	}
	
	public static Bean importarArchivos(JFrame padre) {
		Bean bean = null;
		try {
			bean = mp3Dao.importarArchivos(padre);			
		} catch (ExcepcionAbrir e) {
			e.printStackTrace();
		}
		return bean;
	}
	
	public static Bean guardarTags(Cancion oCancion) {
		Bean bean = null;
		try {		
			bean = mp3Dao.guardarTags(oCancion);
			return bean;
		} catch (ExcepcionAbrir e) {
			e.printStackTrace();
		}
		return bean;
	}
	
	public static Bean dobleClick(int fila) {
		Bean bean = null;
		try {		
			bean = mp3Dao.dobleClick(fila);
			return bean;
		} catch (ExcepcionAbrir e) {
			e.printStackTrace();
		}
		return bean;
		
	}	
	
	public static Bean siguiente() {
		Bean bean = null;
		bean = mp3Dao.siguiente();
		return bean;
	}

	public static Bean avanzar() {
		Bean bean = null;
		bean = mp3Dao.avanzar();
		return bean;
	}

	public static Bean stop() {
		Bean bean = null;
		bean = mp3Dao.stop();
		return bean;		
	}

	public static Bean retroceder() {
		Bean bean = null;
		try {
			bean = mp3Dao.retroceder();			
		} catch (ExcepcionReproduccion e) {
			e.printStackTrace();
		}
		return bean;
	}

	public static Bean anterior() {
		Bean bean = null;
		bean = mp3Dao.anterior();
		return bean;
	}
	
	public static void guardar()
	{
		mp3Dao.guardar();		
	}
	
	public static void guardaListaComo(JFrame padre)
	{
		try {
			mp3Dao.guardaListaComo(padre);
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}
	
	public static Bean cambiaLista(int idLista, String actual) {
		Bean bean = null;
		bean = mp3Dao.cambiaLista(idLista, actual);
		return bean;
	}
	
	public static Bean cambiaTiempo(int segundos) {
		Bean bean = null;
		bean = mp3Dao.cambiaTiempo(segundos);
		return bean;
	}

	public static Bean cambiaVolumen(int vol) {
		Bean bean = null;
		bean = mp3Dao.setGanancia(vol);
		return bean;
	}

	public static Bean mute() {
		Bean bean = null;
		bean = mp3Dao.mute();
		return bean;
	}

	public static Bean repetir() {
		Bean bean = null;
		bean = mp3Dao.repetir();
		return bean;
	}

	public static Bean aleatorio() {
		Bean bean = null;
		bean = mp3Dao.aleatorio();
		return bean;
	}

	public static Bean buscar(String texto) {
		Bean bean = null;
		bean = mp3Dao.buscar(texto);
		return bean;
	}
	
	public static Bean getBean() {
		return mp3Dao.getBean();
	}

}